home *** CD-ROM | disk | FTP | other *** search
/ L' Effet Pommier 3 / L'Effet Pommier - Volume 03.iso / Graphismes / 3D / POV-Ray 3.0B5a PPC / POV-Ray 3.0B5a / POVSCN.Scenes / POVSCN / LEVEL3 / SNACK.POV < prev    next >
Text File  |  1995-11-08  |  9KB  |  524 lines

  1. // Persistence Of Vision raytracer version 3.0 sample file.
  2. // File by Tom Price
  3.  
  4. #version 3.0
  5. global_settings { assumed_gamma 2.2 }
  6.  
  7. #include "shapes.inc"
  8. #include "colors.inc"
  9. #include "textures.inc"
  10.  
  11. camera {
  12.    location <0.0, 50.0, -150.0>
  13.    up <0.0, 1.0, 0.0>
  14.    right <4/3, 0.0, 0.0>
  15.    look_at <0.0, 0.0, 0.0>
  16. }
  17.  
  18.  
  19. light_source { <50.0, 150.0, -250.0> colour White }
  20.  
  21. light_source { <-50.0, 150.0, -250.0> colour White }
  22.  
  23.  
  24. /*The Sky*/
  25. sphere {
  26.    <0.0, -49000.0, -200.0>, 50000.0
  27.    inverse
  28.  
  29.    texture { 
  30.       pigment {
  31.          Bright_Blue_Sky
  32.          scale <5000.0, 1000.0, 5000.0>
  33.          quick_color SkyBlue
  34.       }
  35.       finish {
  36.          crand 0.05 
  37.          ambient 0.7
  38.          diffuse 0.0
  39.       }
  40.    }
  41. }
  42.  
  43. /* The wood grain tabletop */
  44. box {
  45.    <-1, -1, -1>, <1, 1, 1>
  46.  
  47.    texture {
  48.       pigment {
  49.          Pine_Wood
  50.          scale <7.0, 1.0, 0.7>
  51.          rotate -30.0*y
  52.       }
  53.       finish {
  54.          ambient 0.1
  55.          diffuse 0.5
  56.          reflection 0.15
  57.          brilliance 3.0
  58.       }
  59.    }
  60.    scale <200.0, 1.0, 200.0>
  61.    translate -42.0*y
  62. }
  63.  
  64.  
  65. /* a salami */
  66. #declare
  67. Salami = union {
  68.    /* the outside skin */
  69.    union {
  70.       cylinder { -10*x, 10*x, 20 }
  71.       sphere { <-10.0, 0.0, 0.0>, 20.0 }
  72.  
  73.       texture {
  74.          pigment { colour red 0.5 green 0.2 blue 0.2 }
  75.          finish {
  76.             crand 0.05
  77.             ambient 0.1
  78.             diffuse 0.8
  79.             reflection 0.2
  80.             brilliance 3.0
  81.             phong 0.3
  82.             phong_size 20.0
  83.          }
  84.       }
  85.    }
  86.  
  87.    cylinder {
  88.       -10*x, 10.01*x, 19.0
  89.  
  90.       texture {
  91.          pigment { Pink }
  92.          finish {
  93.             crand 0.1
  94.             ambient 0.3
  95.             diffuse 0.7
  96.          }
  97.       }
  98.    }
  99. }
  100.  
  101. /* a salami slice */
  102. #declare
  103. Slice = union {
  104.    /* the outside skin */
  105.    cylinder {
  106.       -0.5*x, 0.5*x, 20
  107.  
  108.       texture {
  109.          pigment { colour red 0.5 green 0.2 blue 0.2 }
  110.          finish {
  111.             crand 0.05
  112.             ambient 0.1
  113.             diffuse 0.8
  114.             reflection 0.2
  115.             brilliance 3.0
  116.             phong 0.3
  117.             phong_size 20.0
  118.          }
  119.       }
  120.    }
  121.  
  122.    cylinder {
  123.       -0.51*x, 0.51*x, 19.0
  124.  
  125.       texture {
  126.          finish {
  127.             crand 0.1
  128.             ambient 0.3
  129.             diffuse 0.7
  130.          }
  131.          pigment { Pink }
  132.       }
  133.    }
  134. }
  135.  
  136.  
  137. /* a wedge of cheese*/
  138. #declare
  139. Cheese = intersection {
  140.    object { Cylinder_Y scale <10.0, 1.0, 10.0> }
  141.    plane { y, 20.0 }
  142.    plane { y, 0.0 inverse }
  143.    plane { x, 5.0 rotate 30.0*y }
  144.    plane { x, -5.0 rotate -30.0*y inverse }
  145.  
  146.    object {
  147.       Cylinder_X
  148.       scale <1.0, 1.0, 1.5>
  149.       rotate -20.0*y
  150.       translate 10.0*y
  151.       inverse
  152.    }
  153.  
  154.    object {
  155.       Cylinder_X
  156.       scale <1.0, 2.0, 1.5>
  157.       rotate <0.0, 20.0, -30>
  158.       translate <0.0, 12.0, -4.0>
  159.       inverse
  160.    }
  161.  
  162.    object {
  163.       Cylinder_X
  164.       scale <1.0, 1.0, 1.0>
  165.       translate <0.0, 15.0, -9.0>
  166.       inverse
  167.    }
  168.  
  169.     object {
  170.       Cylinder_X
  171.       scale <1.0, 2.0, 1.5>
  172.       rotate <0.0, -30.0, -30.0>
  173.       translate <0.0, 15.0, 5.0>
  174.       inverse
  175.    }
  176.  
  177.    object { 
  178.       Cylinder_X
  179.       scale <1.0, 1.5, 1.5>
  180.       rotate <0.0, 0.0, -20.0>
  181.       translate <0.0, 7.0, -9.0>
  182.       inverse
  183.    }
  184.  
  185.    object {
  186.       Cylinder_X
  187.       scale <1.0, 1.0, 1.0>
  188.       rotate <0.0, 10.0, 10.0>
  189.       translate <0.0, 10.0, -2.0>
  190.       inverse
  191.    }
  192.       
  193.    object {
  194.       Cylinder_X
  195.       scale <1.0, 1.0, 1.2>
  196.       rotate <0.0, -10.0, 0.0>
  197.       translate <0.0, 5.0, 0.0>
  198.       inverse
  199.    }
  200.  
  201.    object {
  202.       Cylinder_X
  203.       scale <1.0, 1.3, 1.0>
  204.       translate <0.0, 3.0, -3.0>
  205.       inverse
  206.    }
  207.  
  208.    texture {
  209.       pigment { colour red 1.0 green 0.8 blue 0.0 }
  210.       finish {
  211.          crand 0.05
  212.          ambient 0.2
  213.          diffuse 0.8
  214.       }
  215.    }
  216.  
  217.    bounded_by {
  218.       intersection {
  219.          object { Cylinder_Y scale <10.01, 1.0, 10.01> }
  220.          plane { y, 20.01 }
  221.          plane { y, -0.01 inverse }
  222.       }
  223.    }
  224. }
  225.  
  226. /* a slice of cheese*/
  227. #declare
  228. CheeseSlice = intersection {
  229.    object { Cylinder_Y scale <10.0, 1.0, 10.0> }
  230.    plane { y, 20.0 }
  231.    plane { y, 0.0 inverse }
  232.    plane { x, 0.2  }
  233.    plane { x, -0.2 inverse }
  234.  
  235.    object {
  236.       Cylinder_X
  237.       scale <1.0, 1.0, 1.5>
  238.       rotate <0.0, -20.0, 30>
  239.       translate <0.0, 10.0, 0.0>
  240.       inverse
  241.    }
  242.  
  243.    object {
  244.       Cylinder_X
  245.       scale <1.0, 2.0, 1.5>
  246.       rotate <0.0, 20.0, -30>
  247.       translate <0.0, 12.0, -4.0>
  248.       inverse
  249.    }
  250.  
  251.    object {
  252.       Cylinder_X
  253.       scale <1.0, 1.0, 1.0>
  254.       translate <0.0, 15.0, -9.0>
  255.       inverse
  256.    }
  257.  
  258.    object {
  259.       Cylinder_X
  260.       scale <1.0, 2.0, 1.5>
  261.       rotate <0.0, -30.0, -30.0>
  262.       translate <0.0, 15.0, 5.0>
  263.       inverse
  264.    }
  265.  
  266.    object {
  267.       Cylinder_X
  268.       scale <1.0, 1.5, 1.5>
  269.       rotate <0.0, 0.0, -20.0>
  270.       translate <0.0, 7.0, -9.0>
  271.       inverse
  272.    }
  273.  
  274.    object {
  275.       Cylinder_X
  276.       scale <1.0, 1.0, 1.0>
  277.       rotate <0.0, 10.0, 10.0>
  278.       translate <0.0, 10.0, -2.0>
  279.       inverse
  280.    }
  281.  
  282.    object {
  283.       Cylinder_X
  284.       scale <1.0, 1.0, 1.2>
  285.       rotate <0.0, -10.0, 0.0>
  286.       translate <0.0, 3.0, 5.0>
  287.       inverse
  288.    }
  289.  
  290.    object {
  291.       Cylinder_X
  292.       scale <1.0, 1.3, 1.0>
  293.       rotate <0.0, 0.0, 0.0>
  294.       translate <0.0, 2.0, 2.0>
  295.       inverse
  296.    }
  297.  
  298.    texture {
  299.       pigment { colour red 1.0 green 0.8 blue 0.0 }
  300.       finish {
  301.          crand 0.05
  302.          ambient 0.2
  303.          diffuse 0.8
  304.       }
  305.    }
  306.  
  307.    bounded_by {
  308.       intersection {
  309.          object { Cylinder_Y scale <10.01, 1.0, 10.01> }
  310.          plane { y, 20.01 }
  311.          plane { y, -0.01 inverse }
  312.          plane { x, 0.3 }
  313.          plane { x, -0.3 inverse }
  314.       }
  315.    }
  316. }
  317.  
  318. /* An oval glass dish */
  319. #declare
  320. Dish = union {
  321.    intersection {
  322.       sphere { <0, 0, 0>, 1 scale <100.0, 25.0, 25.0> }
  323.       sphere { <0, 0, 0>, 1 scale <95.0, 24.0, 24.0> inverse }
  324.       plane { y, 0.0 }
  325.       plane { y, -5.0 inverse }
  326.    }
  327.  
  328.    intersection {
  329.       object { Cylinder_Y scale <95.0, 1.0, 24.0> }
  330.       plane { y, -4.0 }
  331.       plane { y, -5.0 inverse }
  332.    }
  333.  
  334.    texture {
  335.       pigment { Clear }
  336.       finish {
  337.          ambient 0.1
  338.          diffuse 0.8
  339.          refraction 0.95
  340.          ior 1.5
  341.          reflection 0.05
  342.          brilliance 2.0
  343.       }
  344.    }
  345. }
  346.  
  347. /* a slice of bread */
  348. #declare
  349. BreadSlice = union {
  350.    union {
  351.       box { <-10, -1, -10>, <10, 1, 10> }
  352.       intersection {
  353.          object {
  354.             Cylinder_Y
  355.             scale <11.0, 1.0, 7.0>
  356.             translate <0.0, 0.0, 10.0>
  357.          }
  358.          plane { y, 1.0 }
  359.          plane { y, -1.0 inverse }
  360.       }
  361.  
  362.       texture {
  363.          pigment { colour red 0.4 green 0.3 blue 0.1 }
  364.          finish {
  365.             crand 0.05
  366.             ambient 0.3
  367.             diffuse 0.7
  368.       //      reflection 0.1
  369.             brilliance 2.0
  370.          }
  371.       }
  372.    }
  373.  
  374.    union {
  375.       box { <-9.5, -1.01, -9.5>, <9.5, 1.01, 9.5> }
  376.       intersection {
  377.          object {
  378.             Cylinder_Y
  379.             scale <10.5, 1.0, 6.5>
  380.             translate <0.0, 0.0, 10.0>
  381.          }
  382.          plane { y, 1.01 }
  383.          plane { y, -1.01 inverse }
  384.       }
  385.  
  386.       texture {
  387.          pigment { colour red 0.7 green 0.6 blue 0.45 }
  388.          finish {
  389.             crand 0.1
  390.             ambient 0.3
  391.             diffuse 0.7
  392.          }
  393.       }
  394.    }
  395.  
  396. //    bounded_by { box { <-10.1, -1.1, -10.1>, <10.1, 1.0, 10.1> } }
  397. }
  398.  
  399. /* Now to put the scene together*/
  400. union {
  401.    object {
  402.       Dish
  403.       scale <0.7, 1.0, 1.2>
  404.       translate <0.0, -36.0, -25.0>
  405.    }
  406.  
  407.    object {
  408.       Salami
  409.       rotate 35.0*y
  410.       translate <-30.0, -20.0, -20.0>
  411.    }
  412.  
  413.    object {
  414.       Cheese
  415.       scale 2.0
  416.       rotate 25.0*y
  417.       translate <30.0, -40.0, -25.0>
  418.    }
  419.  
  420.    translate 25.0*z
  421.    rotate -15.0*y
  422.    translate <-35.0, 0.0, 20.0>
  423. }
  424.  
  425. /* now a sandwich */
  426. union {
  427.    object {
  428.       Slice
  429.       rotate 90.0*y
  430.       rotate 90.0*x
  431.       translate <45.0, -33.0, -35.0>
  432.    }
  433.  
  434.    object {
  435.       CheeseSlice
  436.       scale <1.0, 2.0, 2.0>
  437.       rotate -90.0*y
  438.       rotate 90.0*x
  439.       translate -16.0*z
  440.       rotate 30.0*y
  441.       translate <45.0, -35.0, -35.0>
  442.    }
  443.  
  444.    object {
  445.       BreadSlice
  446.       scale <1.6, 2.0, 1.0>
  447.       rotate -150.0*y
  448.       translate <45.0, -38.0, -35.0>
  449.    }
  450.  
  451.    object {
  452.       BreadSlice
  453.       scale <1.6, 2.0, 1.0>
  454.       rotate -150.0*y
  455.       translate <45.0, -29.0, -35.0>
  456.    }
  457.  
  458.    translate <0.0, 15.0, 10.0>
  459. }
  460.  
  461. /*spotlight on the sandwich*/
  462. intersection {
  463.    object { Cylinder_Y scale <7.5, 1.0, 7.5> }
  464.    object { Cylinder_Y scale <7.4, 1.0, 7.4> inverse }
  465.    plane { y, 50.0 }
  466.    plane { y, 0.0 inverse }
  467.  
  468.    translate <45.0, 100.0, -25.0>
  469.  
  470.    texture {
  471.       pigment { White }
  472.       finish {
  473.          ambient 0.3
  474.          diffuse 0.7
  475.       }
  476.    }
  477. }
  478.  
  479. light_source { <45.0, 145.0, -25.0> colour White }
  480.  
  481. object {
  482.    Slice
  483.    rotate 90.0*y
  484.    rotate 65.0*x
  485.    translate <-30.0, 25.0, 45.0>
  486. }
  487.  
  488. object {
  489.    Slice
  490.    rotate 90.0*y
  491.    rotate 60.0*x
  492.    translate <35.0, 25.0, 25.0>
  493. }
  494.  
  495. object {
  496.    CheeseSlice
  497.    scale <1.0, 2.0, 2.0>
  498.    rotate -90.0*y
  499.    rotate 50.0*x
  500.    translate <-20.0, 35.0, 30.0>
  501. }
  502.  
  503. object {
  504.    CheeseSlice
  505.    scale <1.0, 2.0, 2.0>
  506.    rotate -90.0*y
  507.    rotate 70.0*x
  508.    translate <65.0, 15.0, 35.0>
  509. }
  510.  
  511. object {
  512.    BreadSlice
  513.    scale <1.6, 2.0, 1.0>
  514.    rotate <-40.0, -60.0, 0.0>
  515.    translate <-60.0, 25.0, 35.0>
  516. }
  517.  
  518. object {
  519.    BreadSlice
  520.    scale <1.6, 2.0, 1.0>
  521.    rotate <60.0, 50.0, 0.0>
  522.    translate <70.0, 0.0, 30.0>
  523. }
  524.